Pack v Accesse

Otázka od: Ludo Fulop

28. 11. 2002 10:52

zdravim, pouzival som JRO pre pack v accesse, fungovalo to bez problemov
ako vsak spravim pack v zaheslovanej databaze? Nemam na mysli globalne heslo
ale "multiuser" databazu s *.mdw suborom
Ludo Fulop

Odpovedá: Erik Salaj

28. 11. 2002 22:33

> zdravim, pouzival som JRO pre pack v accesse, fungovalo to bez problemov
> ako vsak spravim pack v zaheslovanej databaze? Nemam na mysli globalne
heslo
> ale "multiuser" databazu s *.mdw suborom

neskusal som to, ale mohlo by to fungovat pomocou
"Jet OLEDB: System
database",
"User Name" a "Password" parametrov specifikovanych v connection stringu

Erik

Odpovedá: Jiri Foldyna

29. 11. 2002 10:45

> zdravim, pouzival som JRO pre pack v accesse, fungovalo to
> bez problemov
> ako vsak spravim pack v zaheslovanej databaze? Nemam na mysli
> globalne heslo
> ale "multiuser" databazu s *.mdw suborom

Ahoj,
delam to takto:

DataBaseName...uplna cesta k souboru MDB
SysDBName...uplna cesta k souboru MDW

(**********************************************************************)
(* CompactDatabase *)
(**********************************************************************)
procedure CompactDatabase;
const
  TCSA = 'Provider=Microsoft.Jet.OLEDB.4.0;Password=MojeHeslo;';
  TCSB = 'User ID=Program;Data Source=';
  TCSD = ';Jet OLEDB:System database=';
  TCSE = ';Jet OLEDB:Engine Type=4';

var
  JE : JetEngine;
  sn : WideString;
  so : WideString;
  Ts : string;
  OK : boolean;
begin
  OK := true;
  Ts := ExtractFilePath(DataBaseName) + 'TEMP.MDB';
  try
    JE := JRO.CoJetEngine.Create;
    so := TCSA + TCSB + DataBaseName + TCSD + SysDBName + TCSE;
    sn := TCSA + TCSB + Ts + TCSD + SysDBName + TCSE;
    JE.CompactDatabase(so, sn);
  except
    OK := false;
  end;
  if OK then
  begin
    DeleteFile(DataBaseName);
    MoveFile(PChar(Ts), PChar(DataBaseName));
  end;
end;

Zdravim

Jiri Foldyna
mailto:jiri.f@avizo.cz